The subject technology relates to systems and methods for optimizing method calls in dynamically-typed object-oriented languages, such as Dart.
Some conventional method call operations for dynamically-typed object oriented languages (and interface method calls in statically typed object oriented languages), require dynamic dispatch. In some implementations, dynamic dispatch involves the selection of a target function at runtime based on a class of the method receiver, and a method selector consisting of a method name and at least part of a method signature. However, runtime searches in the receiver class and corresponding super-classes for a target function matching the selector are often too slow for use in an optimized language implementation.